//
// Created by QU on 24-6-22.
//
#include <iostream>
#include <functional>
#include <utility>
#include <memory>
#include <vector>
#include <map>
#include <set>
#include <new>
#include <thread>
#include <algorithm>
#include <array>
#include <string>
#include <deque>
#include <list>

using std::cout, std::cin, std::endl;


// 以前我们必须写 a(): x_(x), y_(y)........
// 现在有类内初始化了, 还可以在里面写表达式.
int a;

struct S2
{
    int y : (true ? 8 : a) = 42;
    std::string s{"hello"};
};

// std::initializer_list<>是一个类模板

class C
{
private:
    // 委托模版构造函数
    template <typename T>
    C(T first, T second) : l(first, second) { }

    std::list<int> l;

public:
    C(std::vector<short>& v) : C(v.begin(), v.end()) { }

    C(std::deque<short>& v) : C(v.begin(), v.end()) { }
};


int main(int argc, const char* argv[])
{
    std::vector<int> vector{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    //  你可以通过 std::is_trival_v 模版判定一个类是不是一个平凡的类.


    return 0;
}
